package com.mall.util;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;

/**
 * 订单号生成工具类
 * 
 * @author Mall Team
 */
public class OrderNoUtil {
    
    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
    private static final Random RANDOM = new Random();
    
    /**
     * 生成订单号
     * 格式：时间戳(14位) + 随机数(6位)
     */
    public static String generateOrderNo() {
        String timestamp = LocalDateTime.now().format(FORMATTER);
        String randomNum = String.format("%06d", RANDOM.nextInt(1000000));
        return timestamp + randomNum;
    }
    
    /**
     * 生成带前缀的订单号
     */
    public static String generateOrderNo(String prefix) {
        return prefix + generateOrderNo();
    }
    
    /**
     * 生成支付订单号
     */
    public static String generatePayOrderNo() {
        return generateOrderNo("PAY");
    }
    
    /**
     * 生成退款订单号
     */
    public static String generateRefundOrderNo() {
        return generateOrderNo("REF");
    }
}